package s.n.bespin.io;

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;

import s.n.bespin.di.annotation.Singleton;

/**
 * 標準出力に1行分の文字列を書き込むためのメソッドを提供するクラス。
 * 
 * @author NAGAI Satoshi
 */
@Singleton
public class CommandLineWriter implements Writer {

	/** バッファ付き文字出力ストリーム */
	private BufferedWriter bw;

	/**
	 * 新しい{@code CommandLineWriter}クラスのインスタンスを作成します。
	 */
	public CommandLineWriter() {
		bw = new BufferedWriter(new OutputStreamWriter(System.out));
	}

	/**
	 * {@inheritDoc}
	 * 
	 * @see s.n.bespin.io.Writer#write(java.lang.String)
	 */
	@Override
	public void write(String str) throws IOException {
		bw.write(str);
		bw.flush();
	}
}
